package com.kizuki.log;

import com.kizuki.jdbc.Hero;
import lombok.ToString;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@ToString
public class TestSlf4j {

    private static Logger logger = LoggerFactory.getLogger(TestSlf4j.class);

    /**
     * slf4j只是一个日志标准，并不是日志系统的具体实现 门面模式
     * 在引入logback dependency之前
     * SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
     * SLF4J: Defaulting to no-operation (NOP) logger implementation
     * SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
     */
    @Test
    public void testSlf4j(){
        logger.debug("测试debug");
        logger.error("测试error");
    }

    /**
     * 18:26:57.053 [子线程1] DEBUG 我的logger - 参数1：Hero{id=1, name='迪迦', hp=100.0}	参数2：1	参数3：123
     * 18:26:57.056 [子线程1] DEBUG 我的logger - 参数1：2	参数2：Hero{id=1, name='迪迦', hp=100.0}
     * 18:26:57.056 [子线程1] ERROR 我的logger - %d
     */
    @Test
    public void testSlf4j2() throws InterruptedException {
        new Thread(()->{
            Logger log = LoggerFactory.getLogger("我的logger");
            Hero dijia = new Hero(1, "迪迦", 100);
            log.debug("参数1：{}\t参数2：{}\t参数3：{}", dijia, 1, Integer.valueOf("123"));
            log.debug(String.format("参数1：%s\t参数2：%s", 2, dijia)); //%s 是字符串
            log.error("%d");
        }, "子线程1").start();
        Thread.sleep(1000);
    }



}
